//package com.duanjw.springboot.es.service.impl;
//
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.Arrays;
//import java.util.List;
//import java.util.Map;
//
//import org.elasticsearch.action.index.IndexRequest;
//import org.elasticsearch.action.search.SearchResponse;
//import org.elasticsearch.search.SearchHit;
//import org.springframework.stereotype.Service;
//
//import com.duanjw.springboot.es.common.BaseElasticsearchService;
//import com.duanjw.springboot.es.service.DemoService;
//import com.duanjw.springboot.params.pojo.dto.UserDTO;
//
//import cn.hutool.core.bean.BeanUtil;
//
//@Service
//public class DemoServiceImpl extends BaseElasticsearchService implements DemoService {
//
//    @Override
//    public void createIndex(String index) {
//        createIndexRequest(index);
//    }
//
//    @Override
//    public void insert(String index, List<UserDTO> list) {
//
//        try {
//            list.forEach(person -> {
//                IndexRequest request = buildIndexRequest(index, String.valueOf(person.getId()), person);
//                try {
//                    client.index(request, COMMON_OPTIONS);
//                } catch (IOException e) {
//                    e.printStackTrace();
//                }
//            });
//        } finally {
//            try {
//                client.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }
//    }
//    public List<UserDTO> searchList(String index) {
//        SearchResponse searchResponse = search(index);
//        SearchHit[] hits = searchResponse.getHits().getHits();
//        List<UserDTO> personList = new ArrayList<>();
//        Arrays.stream(hits).forEach(hit -> {
//            Map<String, Object> sourceAsMap = hit.getSourceAsMap();
//            UserDTO person = BeanUtil.mapToBean(sourceAsMap, UserDTO.class, true);
//            personList.add(person);
//        });
//        return personList;
//    }
//}
